import { RouteRecordRaw } from 'vue-router';

/**
 * 建议：路由 path 路径与文件夹名称相同，找文件可浏览器地址找，方便定位文件位置
 *
 * 路由meta对象参数说明
 * meta: {
 *      title:          菜单栏及 tagsView 栏、菜单搜索名称（国际化）
 *      isLink：        是否超链接菜单，开启外链条件，`1、isLink: 链接地址不为空 2、isIframe:false`
 *      isHide：        是否隐藏此路由
 *      isKeepAlive：   是否缓存组件状态
 *      isAffix：       是否固定在 tagsView 栏上
 *      isIframe：      是否内嵌窗口，开启条件，`1、isIframe:true 2、isLink：链接地址不为空`
 *      roles：         当前路由权限标识，取角色管理。控制路由显示、隐藏。超级管理员：admin 普通角色：common
 *      icon：          菜单、tagsView 图标，阿里：加 `iconfont xxx`，fontawesome：加 `fa xxx`
 * }
 */

// 扩展 RouteMeta 接口
declare module 'vue-router' {
	interface RouteMeta {
		title?: string;
		isLink?: string;
		isHide?: boolean;
		isKeepAlive?: boolean;
		isAffix?: boolean;
		isIframe?: boolean;
		roles?: string[];
		icon?: string;
	}
}

/**
 * 定义动态路由
 * 前端添加路由，请在顶级节点的 `children 数组` 里添加
 * @description 未开启 isRequestRoutes 为 true 时使用（前端控制路由），开启时第一个顶级 children 的路由将被替换成接口请求回来的路由数据
 * @description 各字段请查看 `/@/views/system/menu/component/addMenu.vue 下的 ruleForm`
 * @returns 返回路由菜单数据
 */
export const dynamicRoutes: Array<RouteRecordRaw> = [
	{
		path: '/',
		name: '/',
		component: () => import('/@/layout/index.vue'),
		redirect: '/distribution/index',
		meta: {
			isKeepAlive: true,
		},
		children: [
			// {
			// 	path: '/home',
			// 	name: 'home',
			// 	component: () => import('/@/views/home/index.vue'),
			// 	meta: {
			// 		title: 'message.router.home',
			// 		isLink: '',
			// 		isHide: false,
			// 		isKeepAlive: true,
			// 		isAffix: true,
			// 		isIframe: false,
			// 		roles: ['admin', 'common'],
			// 		icon: 'iconfont icon-shouye',
			// 	},
			// },
			// {
			// 	path: '/index',
			// 	name: 'index',
			// 	component: () => import('/@/views/pages/index/index.vue'),
			// 	meta: {
			// 		title: 'message.router.home',
			// 		isLink: '',
			// 		isHide: false,
			// 		isKeepAlive: true,
			// 		isAffix: false,
			// 		isIframe: false,
			// 		roles: ['admin', 'common'],
			// 		icon: 'iconfont icon-shouye',
			// 	},
			// },
			{
				path: '/distribution/index',
				name: 'distributionIndex',
				component: () => import('/@/views/pages/distribution/index.vue'),
				meta: {
					title: '商品管理',
					isLink: '',
					isHide: false,
					isKeepAlive: true,
					isAffix: false,
					isIframe: false,
					roles: ['admin', 'common'],
					icon: 'iconfont icon-crew_feature',
				},
			},
			{
				path: '/distribution/user',
				name: 'distributionUser',
				component: () => import('/@/views/pages/distribution/user.vue'),
				meta: {
					title: '用户管理',
					isLink: '',
					isHide: false,
					isKeepAlive: true,
					isAffix: false,
					isIframe: false,
					roles: ['admin', 'common'],
					icon: 'iconfont icon-gerenzhongxin',
				},
			},
			{
				path: '/distribution/settlement',
				name: 'distributionSettlement',
				component: () => import('/@/views/pages/distribution/settlement.vue'),
				meta: {
					title: '结算管理',
					isLink: '',
					isHide: false,
					isKeepAlive: true,
					isAffix: false,
					isIframe: false,
					roles: ['admin', 'common'],
					icon: 'iconfont icon-shenqingkaiban',
				},
			},
			// {
			// 	path: '/template',
			// 	name: 'template',
			// 	component: () => import('/@/views/pages/template/index.vue'),
			// 	meta: {
			// 		title: '装修模版管理',
			// 		isLink: '',
			// 		isHide: false,
			// 		isKeepAlive: true,
			// 		isAffix: false,
			// 		isIframe: false,
			// 		roles: ['admin'],
			// 		icon: 'iconfont icon-zidingyibuju',
			// 	},
			// },
			// {
			// 	path: '/siteTemplate',
			// 	name: 'siteTemplate',
			// 	component: () => import('/@/views/pages/template/site/index.vue'),
			// 	meta: {
			// 		title: '站点-装修管理',
			// 		isLink: '',
			// 		isHide: false,
			// 		isKeepAlive: true,
			// 		isAffix: false,
			// 		isIframe: false,
			// 		roles: ['common'],
			// 		icon: 'iconfont icon-zidingyibuju',
			// 	},
			// },
			// {
			// 	path: '/mallMannger',
			// 	name: 'mallMannger',
			// 	meta: {
			// 		title: '自营商城管理',
			// 		isLink: '',
			// 		isHide: false,
			// 		isKeepAlive: true,
			// 		isAffix: false,
			// 		isIframe: false,
			// 		roles: ['common'],
			// 		icon: 'iconfont icon-juxingkaobei',
			// 	},
			// 	children: [
			// 		{
			// 			path: '/buildPage',
			// 			name: 'buildPage',
			// 			component: () => import('/@/views/pages/buildPage/index.vue'),
			// 			meta: {
			// 				title: '页面装修',
			// 				isLink: '',
			// 				isHide: true,
			// 				isKeepAlive: true,
			// 				isAffix: false,
			// 				isIframe: false,
			// 				roles: ['admin', 'common'],
			// 				icon: 'iconfont icon-diannao1',
			// 			},
			// 		},
			// 		// {
			// 		// 	path: '/search',
			// 		// 	name: 'search',
			// 		// 	component: () => import('/@/views/pages/search/index.vue'),
			// 		// 	meta: {
			// 		// 		title: '搜索管理',
			// 		// 		isLink: '',
			// 		// 		isHide: false,
			// 		// 		isKeepAlive: true,
			// 		// 		isAffix: false,
			// 		// 		isIframe: false,
			// 		// 		roles: ['admin', 'common'],
			// 		// 		icon: 'ele-Search',
			// 		// 	},
			// 		// },
			// 		{
			// 			path: '/category',
			// 			name: 'category',
			// 			component: () => import('/@/views/pages/category/index.vue'),
			// 			meta: {
			// 				title: '商品分类管理',
			// 				isLink: '',
			// 				isHide: false,
			// 				isKeepAlive: true,
			// 				isAffix: false,
			// 				isIframe: false,
			// 				roles: ['admin', 'common'],
			// 				icon: 'iconfont icon-font-size',
			// 			},
			// 		},
			// 		{
			// 			path: '/label',
			// 			name: 'label',
			// 			component: () => import('/@/views/pages/label/index.vue'),
			// 			meta: {
			// 				title: '服务标签管理',
			// 				isLink: '',
			// 				isHide: false,
			// 				isKeepAlive: true,
			// 				isAffix: false,
			// 				isIframe: false,
			// 				roles: ['admin', 'common'],
			// 				icon: 'iconfont icon--chaifenhang',
			// 			},
			// 		},
			// 		{
			// 			path: '/freight',
			// 			name: 'freight',
			// 			component: () => import('/@/views/pages/freight/index.vue'),
			// 			meta: {
			// 				title: '运费模版管理',
			// 				isLink: '',
			// 				isHide: false,
			// 				isKeepAlive: true,
			// 				isAffix: false,
			// 				isIframe: false,
			// 				roles: ['admin', 'common'],
			// 				icon: 'iconfont icon-ditu',
			// 			},
			// 		},
			// 		{
			// 			path: '/goods',
			// 			name: 'goods',
			// 			component: () => import('/@/views/pages/goods/index.vue'),
			// 			meta: {
			// 				title: '商品管理',
			// 				isLink: '',
			// 				isHide: false,
			// 				isKeepAlive: true,
			// 				isAffix: false,
			// 				isIframe: false,
			// 				roles: ['admin', 'common'],
			// 				icon: 'iconfont icon-crew_feature',
			// 			},
			// 		},
			// 		{
			// 			path: '/order',
			// 			name: 'order',
			// 			component: () => import('/@/views/pages/order/index.vue'),
			// 			meta: {
			// 				title: '订单管理',
			// 				isLink: '',
			// 				isHide: false,
			// 				isKeepAlive: true,
			// 				isAffix: false,
			// 				isIframe: false,
			// 				roles: ['admin', 'common'],
			// 				icon: 'iconfont icon-shenqingkaiban',
			// 			},
			// 		},
			// 		{
			// 			path: '/supplier',
			// 			name: 'supplier',
			// 			component: () => import('/@/views/pages/supplier/index.vue'),
			// 			meta: {
			// 				title: '供货商管理',
			// 				isLink: '',
			// 				isHide: false,
			// 				isKeepAlive: true,
			// 				isAffix: false,
			// 				isIframe: false,
			// 				roles: ['admin', 'common'],
			// 				icon: 'iconfont icon-shuxingtu',
			// 			},
			// 		},
			// 		{
			// 			path: '/aftersales',
			// 			name: 'aftersales',
			// 			component: () => import('/@/views/pages/aftersales/index.vue'),
			// 			meta: {
			// 				title: '售后管理',
			// 				isLink: '',
			// 				isHide: false,
			// 				isKeepAlive: true,
			// 				isAffix: false,
			// 				isIframe: false,
			// 				roles: ['admin', 'common'],
			// 				icon: 'iconfont icon-dianhua',
			// 			},
			// 		},
			// 	],
			// },
			// {
			// 	path: '/siteAgreementMannger',
			// 	name: 'siteAgreementMannger',
			// 	meta: {
			// 		title: '站点-协议管理',
			// 		isLink: '',
			// 		isHide: false,
			// 		isKeepAlive: true,
			// 		isAffix: false,
			// 		isIframe: false,
			// 		roles: ['common'],
			// 		icon: 'iconfont icon-juxingkaobei',
			// 	},
			// 	children: [
			// 		{
			// 			path: '/siteUserAgreement',
			// 			name: 'siteUserAgreement',
			// 			component: () => import('/@/views/pages/agreement/site/userAgreement/index.vue'),
			// 			meta: {
			// 				title: '用户协议',
			// 				isLink: '',
			// 				isHide: false,
			// 				isKeepAlive: true,
			// 				isAffix: false,
			// 				isIframe: false,
			// 				roles: ['admin', 'common'],
			// 				icon: 'iconfont icon-bolangneng',
			// 			},
			// 		},
			// 		{
			// 			path: '/sitePrivacypolicy',
			// 			name: 'sitePrivacypolicy',
			// 			component: () => import('/@/views/pages/agreement/site/privacypolicy/index.vue'),
			// 			meta: {
			// 				title: '隐私政策',
			// 				isLink: '',
			// 				isHide: false,
			// 				isKeepAlive: true,
			// 				isAffix: false,
			// 				isIframe: false,
			// 				roles: ['admin', 'common'],
			// 				icon: 'iconfont icon-xianshimima',
			// 			},
			// 		},
			// 	],
			// },
			// {
			// 	path: '/agreementMannger',
			// 	name: 'agreementMannger',
			// 	meta: {
			// 		title: '协议模版管理',
			// 		isLink: '',
			// 		isHide: false,
			// 		isKeepAlive: true,
			// 		isAffix: false,
			// 		isIframe: false,
			// 		roles: ['admin'],
			// 		icon: 'iconfont icon-juxingkaobei',
			// 	},
			// 	children: [
			// 		{
			// 			path: '/userAgreement',
			// 			name: 'userAgreement',
			// 			component: () => import('/@/views/pages/agreement/admin/userAgreement/index.vue'),
			// 			meta: {
			// 				title: '用户协议',
			// 				isLink: '',
			// 				isHide: false,
			// 				isKeepAlive: true,
			// 				isAffix: false,
			// 				isIframe: false,
			// 				roles: ['admin', 'common'],
			// 				icon: 'iconfont icon-bolangneng',
			// 			},
			// 		},
			// 		{
			// 			path: '/privacypolicy',
			// 			name: 'privacypolicy',
			// 			component: () => import('/@/views/pages/agreement/admin/privacypolicy/index.vue'),
			// 			meta: {
			// 				title: '隐私政策',
			// 				isLink: '',
			// 				isHide: false,
			// 				isKeepAlive: true,
			// 				isAffix: false,
			// 				isIframe: false,
			// 				roles: ['admin', 'common'],
			// 				icon: 'iconfont icon-xianshimima',
			// 			},
			// 		},
			// 	],
			// },
			// {
			// 	path: '/auth',
			// 	name: 'auth',
			// 	meta: {
			// 		title: '授权管理',
			// 		isLink: '',
			// 		isHide: false,
			// 		isKeepAlive: true,
			// 		isAffix: false,
			// 		isIframe: false,
			// 		roles: ['admin'],
			// 		icon: 'iconfont icon-shouye',
			// 	},
			// 	children: [
			// 		{
			// 			path: '/authAli',
			// 			name: 'authAli',
			// 			component: () => import('/@/views/pages/auth/index.vue'),
			// 			meta: {
			// 				title: '支付宝授权管理',
			// 				isLink: '',
			// 				isHide: false,
			// 				isKeepAlive: true,
			// 				isAffix: false,
			// 				isIframe: false,
			// 				roles: ['admin', 'common'],
			// 				icon: 'iconfont icon-shouye',
			// 			},
			// 		},
			// 	],
			// },
			// {
			// 	path: '/system',
			// 	name: 'system',
			// 	meta: {
			// 		title: '系统管理',
			// 		isLink: '',
			// 		isHide: false,
			// 		isKeepAlive: true,
			// 		isAffix: false,
			// 		isIframe: false,
			// 		roles: ['admin', 'common'],
			// 		icon: 'iconfont icon-juxingkaobei',
			// 	},
			// 	children: [
			// 		{
			// 			path: '/role',
			// 			name: 'role',
			// 			component: () => import('/@/views/pages/role/index.vue'),
			// 			meta: {
			// 				title: '角色管理',
			// 				isLink: '',
			// 				isHide: false,
			// 				isKeepAlive: true,
			// 				isAffix: false,
			// 				isIframe: false,
			// 				roles: ['admin'],
			// 				icon: 'iconfont icon-skin',
			// 			},
			// 		},
			// 		{
			// 			path: '/user',
			// 			name: 'user',
			// 			component: () => import('/@/views/pages/user/index.vue'),
			// 			meta: {
			// 				title: '用户管理',
			// 				isLink: '',
			// 				isHide: false,
			// 				isKeepAlive: true,
			// 				isAffix: false,
			// 				isIframe: false,
			// 				roles: ['admin', 'common'],
			// 				icon: 'iconfont icon-gerenzhongxin',
			// 			},
			// 		},
			// 	],
			// },
			// {
			// 	path: '/distribution',
			// 	name: 'distribution',
			// 	meta: {
			// 		title: '商品管理',
			// 		isLink: '',
			// 		isHide: false,
			// 		isKeepAlive: true,
			// 		isAffix: false,
			// 		isIframe: false,
			// 		roles: ['admin', 'common'],
			// 		icon: 'iconfont icon-juxingkaobei',
			// 	},
			// 	children: [
			// 	],
			// },
		],
	},
];

/**
 * 定义404、401界面
 * @link 参考：https://next.router.vuejs.org/zh/guide/essentials/history-mode.html#netlify
 */
export const notFoundAndNoPower = [
	{
		path: '/:path(.*)*',
		name: 'notFound',
		component: () => import('/@/views/error/404.vue'),
		meta: {
			title: 'message.staticRoutes.notFound',
			isHide: true,
		},
	},
	{
		path: '/401',
		name: 'noPower',
		component: () => import('/@/views/error/401.vue'),
		meta: {
			title: 'message.staticRoutes.noPower',
			isHide: true,
		},
	},
];

/**
 * 定义静态路由（默认路由）
 * 此路由不要动，前端添加路由的话，请在 `dynamicRoutes 数组` 中添加
 * @description 前端控制直接改 dynamicRoutes 中的路由，后端控制不需要修改，请求接口路由数据时，会覆盖 dynamicRoutes 第一个顶级 children 的内容（全屏，不包含 layout 中的路由出口）
 * @returns 返回路由菜单数据
 */
export const staticRoutes: Array<RouteRecordRaw> = [
	{
		path: '/login',
		name: 'login',
		component: () => import('/@/views/login/index.vue'),
		meta: {
			title: '登录',
		},
	},
];
